using System.Collections.Generic;

namespace Rhizome.Contract
{
	public interface IMessageSink
	{
		/// <summary>
		/// Sends specific message
		/// </summary>
		/// <param name="source">messsage initiator</param>
		/// <param name="message">message to send</param>
		/// <param name="stack">call history</param>
		/// <returns>Was the message handled?</returns>
		bool Send(object source, IMessage message, ICollection<IMessageSink> stack);
	}
}